package com.itheima02.day11test;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author 刘全
 * @date 2021/7/28
 */
/*
问题3：
        我国有34个省级行政区，分别是：
        23个省：
        河北省、山西省、吉林省、辽宁省、黑龙江省、陕西省、甘肃省、青海省、山东省、福建省、
        浙江省、台湾省、河南省、湖北省、湖南省、江西省、江苏省、安徽省、广东省、海南省、四川省、贵州省、云南省。
        4个直辖市：
        北京市、天津市、上海市、重庆市。
        5个自治区：
        内蒙古自治区、新疆维吾尔自治区、宁夏回族自治区、广西壮族自治区、西藏自治区。
        2个特别行政区：
        香港特别行政区、澳门特别行政区。

        使用流：
        1、统计三个字的省份的个数
        2、统计名字中包含方位名词的省份（东西南北）的个数
        3、打印名字中包含方位名词的普通省份（非自治区直辖市特别行政区）的名字
        4、将所有的特殊省份（自治区直辖市特别行政区）提取出来并放到新集合中
*/
public class Test3 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>(List.of("河北省","山西省","吉林省",
                "辽宁省","黑龙江省","陕西省","甘肃省","青海省","山东省","福建省","浙江省","台湾省",
                "河南省","湖北省","湖南省","江西省","江苏省","安徽省","广东省","海南省","四川省",
                "贵州省","云南省","北京市","天津市","上海市","重庆市","内蒙古自治区","新疆维吾尔自治区",
                "宁夏回族自治区","广西壮族自治区","西藏自治区","香港特别行政区","澳门特别行政区"));
        //统计三个字的省份的个数
        long count1=list.stream().filter(name->name.length()==3).count();
        System.out.println("三个字省份的个数为:"+count1);
        //统计名字中包含方位名词的省份（东西南北）的个数
        System.out.println("==========================");
        long count2 = list.stream().filter(name -> {
            boolean b = name.contains("东") || name.contains("南") || name.contains("西") || name.contains("北");
            return b;
        }).count();
        System.out.println("名字中包含方位名词的省份（东西南北）的个数为:"+count2);
        //打印名字中包含方位名词的普通省份（非自治区直辖市特别行政区）的名字
        System.out.println("==========================");
        System.out.println("名字中包含方位名词的普通省份（非自治区直辖市特别行政区）为:");
        list.stream().filter(name->{
            boolean b1 = name.contains("东") || name.contains("南") || name.contains("西") || name.contains("北");
            boolean b2 = !name.contains("市")&&!name.contains("自治区")&&!name.contains("特别行政区")&&b1;
            return b2;
        }).forEach(name-> System.out.println(name));
        //将所有的特殊省份（自治区直辖市特别行政区）提取出来并放到新集合中
        System.out.println("==========================");
        System.out.println("我国的特殊省份（自治区直辖市特别行政区）为:");
        List<String> list1 = list.stream().filter(name -> {
            boolean b = name.contains("市") || name.contains("自治区") || name.contains("特别行政区");
            return b;
        }).collect(Collectors.toList());
        for (String s : list1) {
            System.out.println(s);
        }
    }
}
